Polyhedral Transformations of Explicitly Parallel Programs

نویسندگان

  • Prasanth Chatarasi
  • Jun Shirako
  • Vivek Sarkar
چکیده

The polyhedral model is a powerful algebraic framework that has enabled significant advances to analyses and transformations of sequential affine (sub)programs, relative to traditional AST-based approaches. However, given the rapid growth of parallel software, there is a need for increased experiences with using polyhedral frameworks for analysis and transformations of explicitly parallel programs. An interesting side effect of supporting explicitly parallel programs is that doing so can also enable analysis and transformation of programs with unanalyzable data accesses within a polyhedral framework, since explicit parallelism can often mitigate the imprecision that accompanies unanalyzable data accesses arising from a variety of sources, including unrestricted pointer aliasing, unknown function calls, and certain classes of non-affine constructs. In this paper, we address the problem of extending polyhedral frameworks to enable analysis and transformation of programs that contain both explicit parallelism and unanalyzable data accesses. A summary of our approach is as follows. As in past work, we first enable conservative dependence analysis of a given region of code; for simplicity, we use an approach based on dummy variables that can work with any polyhedral tool that supports access functions. After obtaining conservative dependences, we use the Fourier-Motzkin elimination method to remove all dummy variables. Next, we identify happens-before relations from the explicitly parallel constructs, and subtract their complement from the conservative dependences. The resulting set of dependences can then be passed on to a polyhedral transformation tool, such as PLuTo, to enable transformation of explicitly-parallel programs with unanalyzable data accesses. To motivate our approach, we studied 18 explicitly-parallel OpenMP benchmarks from the Rodinia benchmark suite, and found that these benchmarks use six classes of non-affine constructs that are commonly found in parallel scientific applications: 1) Non-affine subscript expressions, 2) Indirect array subscripts, 3) Use of structs, 4) Calls to user-defined functions, 5) Non-affine loop bounds, and 6) Non-affine if IMPACT 2015 Fifth International Workshop on Polyhedral Compilation Techniques Jan 19, 2015, Amsterdam, The Netherlands In conjunction with HiPEAC 2015. http://impact.gforge.inria.fr/impact2015 conditions. While there are known techniques from past work to enable automatic analysis for some of these nonaffine constructs in polyhedral frameworks, we show that the use of explicit parallelism can enable a larger set of polyhedral transformations for some of these programs, compared to what might have been possible if the input program was sequential.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

PIPS Is not (just) Polyhedral Software Adding GPU Code Generation in PIPS

Parallel and heterogeneous computing are growing in audience thanks to the increased performance brought by ubiquitous manycores and GPUs. However, available programming models, like OPENCL or CUDA, are far from being straightforward to use. As a consequence, several automated or semi-automated approaches have been proposed to automatically generate hardware-level codes from high-level sequenti...

متن کامل

Polygonal Iteration Space Partitioning using the Polyhedral Model

OF THE DISSERTATION Polygonal Iteration Space Partitioning using the Polyhedral Model By Aniket Shivam Master of Science in Computer Science University of California, Irvine, 2016 Professor Alexander V. Veidenbaum, Chair Loop-nests in most scientific applications perform repetitive operations on array(s) and account for most of the program execution time. Traditional loop transformations, such ...

متن کامل

AlphaZ and the Polyhedral Equational Model

With the emergence of multi-core processors, parallelism has gone main-stream. However, parallel programming is difficult for many reasons. Programmers now must think about which operations can legally be executed in parallel, when to insert synchronizations, and so on. In addition, parallelism and non-determinism nature of it makes debugging much harder. One approach to address this problem is...

متن کامل

Polyhedral Abstract Interpretation

The polyhedral model is a collection of techniques developed around a common intermediate representation of programs : integer polyhedra. Such a mathematical representation of programs inherits nice structural properties. For instance, when loop transformations are represented as affine functions, compositions of transformations are also affine functions due to their closure properties. The pol...

متن کامل

An Extended Polyhedral Model for SPMD Programs and Its Use in Static Data Race Detection

Despite its age, SPMD (Single Program Multiple Data) parallelism continues to be one of the most popular parallel execution models in use today, as exemplified by OpenMP for multicore systems and CUDA and OpenCL for accelerator systems. The basic idea behind the SPMD model, which makes it different from task-parallel models, is that all logical processors (worker threads) execute the same progr...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2014